Many types of printing systems include one or more printheads that have arrays of marking elements that are controlled to make marks of particular sizes, colors and densities in particular locations on the print media in order to print the desired image. In some types of printing systems, the array of marking elements extends across the width of the page, and the image can be printed one line at a time. However, the cost of a printhead that includes a page-width array of marking elements is too high for some types of printing applications, so a carriage printing architecture is often used.
In a carriage printing system such as a desktop printer, or a large area plotter, the printhead or printheads are mounted on a carriage that is moved past the recording medium in a carriage scan direction as the marking elements are actuated to make a swath of dots. At the end of the swath, the carriage is stopped, printing is temporarily halted and the recording medium is advanced. Then another swath is printed, so that the image is formed swath by swath. In a carriage printer, the marking element arrays are typically disposed along an array direction that is substantially parallel to the media advance direction, and substantially perpendicular to the carriage scan direction. The length of the marking element array determines the maximum swath height that can be used to print an image.
In single-pass printing, each marking element that is used for printing is responsible to print all pixel locations that are required in a corresponding raster line of the image swath. After printing the swath, the page is advanced by a distance corresponding to the length of the marking element array and the next swath is printed, again with each marking element being responsible to print all pixel locations that are required in the corresponding raster line of that image swath. Single pass printing has the advantage of fast print throughput, and is frequently used in draft printing modes. However, in practice, marking elements are often non-uniform in a variety of ways. For example, they can produce nonuniform dot sizes on the recording medium. They can also be misdirected such that the dot location is displaced from its intended location, or they can be defective such that no dot at all is produced. Such nonuniformities often produce objectionable image quality defects such as banding in single-pass printing. In addition, it is well known in the field of inkjet printing that if ink drops placed at neighboring locations on the page are printed at the same time, then the ink drops tend to flow together on the surface of the page before they soak into the page. This can give the printed image an undesirable appearance often referred to as coalescence. Coalescence decreases as the time delay between printing adjacent dots increases, thereby improving image quality.
In multi-pass printing, responsibility for printing each raster line of the image is shared between a plurality of marking elements. In this way the nonuniform marking behavior of marking elements can be disguised in order to provide improved image quality by reducing the visibility of artifacts such as banding. Multipass printing can provide time for improving the uniformity of ink-media interactions by controlling the number and pattern of dots that can be printed within one pass, thereby reducing coalescence. Multipass printing can also enable multitone printing in which multiple dots are printed in the same pixel locations. Multipass printing is described in more detail in commonly assigned co-pending U.S. Patent Application Publication No. 2008/0309952.
In order to ensure that each pixel location of the image can be printed during at least one of the P passes in a multipass print mode, a print mask is provided for each color plane of the image. The print mask is typically a two dimensional array of rows and columns of Boolean data. Each row of the print mask contains 1's and 0's for each corresponding marking element in the marking element array indicating which pixel locations are authorized for printing by that marking element during the printing of a swath of data. In other words, Typically, a logical AND operation is applied between the print mask data and the image data in order to indicate which pixel locations are to be printed by each marking element in a given print swath. For single-tone P-pass printing (where each pixel location can receive one and only one dot during the printing of the P passes), the print mask is composed of P mask sections, where each mask section includes complementary mask data, such that each row of data in one mask section is complementary to corresponding rows in the other mask sections. The sum of the complementary mask data is 1 for each pixel location for single-tone printing, so that each pixel location can be printed in one and only one of the P passes. For printing systems designed to print up to Q dots in each pixel location (where Q is greater than 1) in P passes, the print mask is still composed of P mask sections, but the sum of the complementary print mask data can be as large as Q for each pixel location.
Image data is typically provided to a printing system in the form of RGB data files that describe the color of each pixel of the image in terms of an amount of each of the additive primary colors (red, green and blue). For each of the three primary colors, 256 levels (8 bits) per pixel are generally provided to specify the amount.
Printing systems typically print with the subtractive colors cyan, magenta and yellow, and optionally black. Thus, image data needs to be converted from ROB color space to CMYK color space. In addition, many types of printing systems, such as inkjet printers, provide discrete dots of color in specified locations on paper or other recording medium. In binary printing, a dot of cyan, magenta, yellow or black is either printed in a given pixel location or not. In multipass printing, it is possible to print more than one dot of a particular color at a particular location. Additionally, some printers are capable of printing with inks of different densities (e.g. light cyan and dark cyan) or different dot sizes. In any case, the available number of colorant levels per dot location on the printed page is typically far less than the 256 levels per primary color provided in the input image data. Furthermore, the number of pixels in an input data image might be on the order of a few million. The number of available output dot locations for a printing system depends on both the printing resolution and the size of the recording medium. For an image printed by a desktop printer, the number of output dot locations can be on the order of a hundred million. For an image printed by a wide format printer, the number of output dot locations can be more than an order of magnitude larger. Thus the image data must be scaled for the number of output pixels, and halftoned or multitoned so that the large number of discrete dots of color on the recording medium adequately represent the intended appearance and color levels of the image.
For printing systems controlled by a host computer, some image processing tasks are performed in the printer driver of the host computer and some image processing tasks are performed in an image processing unit of the printing system. For printing applications where the amount of printing data is large, i.e. for high resolution or large size images or multiple densities of ink, image rendering and transfer of the data to the printing system is not sufficiently fast. This can result in long wait times for image spooling prior to printing, or pauses between swaths during the printing process that can cause degradation in print quality. Printing delays can also occur in printing systems operating in a standalone mode where the image processing is all done within the printing system.
As is known in the art, a more efficient way of processing image data, rather than rendering the image at fill printing resolution, is to first multitone the image at a lower resolution than the full printing resolution, but at a higher number of multitone levels than the number of levels that the printing system is capable of printing. The compressed image data is then decoded using the higher number of multitone levels to specify a dot matrix pattern or superpixel to expand the image to full printing resolution.
Although such printing resolution expansion methods are known for compressed image data, providing a reduction in image processing time, for some printing applications where the printing data is very large, even further savings of image data processing time would be advantageous in order to further reduce or eliminate delays in printing.